package guoanmaker.operator.business.service;

import java.util.HashMap;
import java.util.List;

import org.springframework.data.domain.Page;

import guoanmaker.operator.business.model.OperatorCity;
import guoanmaker.operator.business.model.OperatorProvince;
import guoanmaker.operator.business.modelnobind.OperatorCitiesMove;
import guoanmaker.operator.business.modelnobind.Utils;

/**
 * @author huZhaoyu 
 * @ClassName: OperatorCityServiceInterface 
 * @Description: OperatorCityServiceInterface
 * @date 2017/6/29
 */
public interface OperatorCityServiceInterface {

    /** 
    * @Title: saveCity
    * @Description: 新增/修改 开通城市
    * @param：OperatorRoundPhoto   
    * @return OperatorCity    
    * @throws 
    */
    int saveCity(String code);
    
    int validateCity(String code);

    /** 
    * @Title: OperatorCitiesMove
    * @Description: 查询所有开通城市
    * @param：void  
    * @return List<OperatorCity>   
    * @throws 
    */
    List<OperatorCitiesMove> getAllCity();

    /** 
    * @Title: getAllCityByPage
    * @Description: 查询全部开通城市并分页 
     * @param：Integer page 页码  
     * @param：Integer size 条数 
    * @return Page<OperatorCity>   
    * @throws 
    */
    Page<OperatorCity> getAllCityByPage(Integer page, Integer size);

    /** 
     * @Title: getCityByPageOrderByWeight
     * @Description: 按权重排序查询开通城市并分页 
     * @param：Integer page 页码  
     * @param：Integer size 条数 
     * @return Page<OperatorCity>   
     * @throws 
     */
    Page<OperatorCity> getCityByPageOrderByWeight(Integer page, Integer size);


    /** 
    * @Title: deleteCityById
    * @Description: 根据Id删除开通城市 
    * @param： String id   
    * @return void   
    * @throws 
    */
    void deleteCityById(String id);

    /** 
    * @Title: getCityById 
    * @Description: 根据Id查询开通城市
    * @param： String id
    * @return OperatorCity    
    * @throws 
    */
    OperatorCity getCityById(String id);

    /** 
     * @Title: countAllById 
     * @Description: 根据Id查询开通城市
     * @param： String id
     * @return Integer    
     * @throws 
     */
    Integer countAllById();

    /** 
     * @Title: getCityByStatus 
     * @Description: 根据状态查询开通城市
     * @param： Integer status
     * @return Integer    
     * @throws 
     */
    List<OperatorCity> getCityByStatus(Integer status);

    /** 
     * @Title: getByCityId 
     * @Description: 根据城市ID查询开通城市
     * @param： Integer status
     * @return OperatorCity    
     * @throws 
     */
    OperatorCity getByCityId(String cityId);

    /** 
     * @Title: getCity2App 
     * @Description: APP接口
     * @param： String cityName
     * @return HashMap<String, Object>    
     * @throws 
     */
    HashMap<String, Object> getCity2App(String cityName,String username,String landType);
    
    List<Utils> selectAllArea();
    
    List<OperatorCitiesMove> selectAreaByCode(String code);
    
    List<OperatorProvince> selectAllPriovince();
    
    List<OperatorCity> selectCityforPc();
}
